<?php


class LoyerRegle{
    public static function verifAppel(Loyer $loyer, Mypdo $db){
        $sql = 'SELECT * FROM loyer WHERE date_loyer LIKE :dates AND id_loc = :id_loc AND id_loca = :id_loca';
        $req = $db->prepare($sql);
        $req->bindValue(':dates',substr($loyer->getDateLoyer(),0,-2).'%',PDO::PARAM_STR);
        $req->bindValue(':id_loc',$loyer->getIdLoc(),PDO::PARAM_INT);
        $req->bindValue(':id_loca',$loyer->getIdLoca(),PDO::PARAM_INT);
        $req->execute();
        $res = $req->fetch(PDO::FETCH_OBJ);
        //var_dump($res);
        if(!empty($res)){
            throw new ImmolocException('L\'appel du mois à déjà été effectué.');
        }elseif(new DateTime($loyer->getDateLoyer())< new DateTime('now')){
            throw new ImmolocException('L\'appel est doit avoir une date future.');
        }

        $sql2 = 'SELECT * FROM locataire WHERE id_loca = :id_loca AND date_bail_deb_loca <= :dates AND date_bail_fin_loca >= :dates2 ';
        $req2 = $db->prepare($sql2);
        $req2->bindValue(':dates',$loyer->getDateLoyer(),PDO::PARAM_STR);
        $req2->bindValue(':dates2',$loyer->getDateLoyer(),PDO::PARAM_STR);
        $req2->bindValue(':id_loca',$loyer->getIdLoca(),PDO::PARAM_INT);
        $req2->execute();
        $res2 = $req2->fetch(PDO::FETCH_OBJ);
        if(empty($res2)){
            throw new ImmolocException('Aucun bail n\'ai attribuer pour cette date.');
        }elseif(new DateTime($loyer->getDateLoyer())< new DateTime('now')){
            throw new ImmolocException('L\'appel est doit avoir une date future.');
        }

    }
}